In a conventional client-server structure or arrangement the server is used to store a 3D model and to deliver it to connected clients. The clients then display the model and support user interaction with the model. For large models containing many polygonal facets, the geometric description of the model (using, for example, vertices, faces and normals) can be larger than a rendered image of the model. The server is thus relied on to render images of the model and to transmit the rendered images to the connected clients.
At the client, an interactive 3D graphics application typically requires a frequent adjustment of viewpoint with respect to the 3D model to be rendered. For example, the user may inspect a 3D model by virtually rotating the model in a manner similar to manually inspecting a physical model that is held in the hand.
Currently, the use of 3D graphics on mobile computing devices is hampered by several factors, including computational power and bandwidth-limited connections to servers. Since 3D models of non-trivial complexity may require a large amount of data to display, the time required to transmit the required data through a bandwidth-limited connection can be objectionable to the user, and/or may make it very difficult or impossible to operate in a real-time, interactive manner. For example, if the user can manipulate a mouse or trackball to change the viewpoint of a displayed model in just a few seconds, but if it requires a server some tens of seconds to transmit an updated image of the model from the new viewpoint to the mobile computing device, then the user's perception of an interactive graphics session is detrimentally affected.
While it is known that server-side rendering has been used in some systems, one significant disadvantage with conventional server-side rendering approaches is that the user is only presented with one particular view of the model. To obtain another view, the user has to request the server to render the model from a new viewpoint. However, choosing that desired viewpoint is often difficult because there is no means to specify the viewpoint by directly manipulating the model.